#ifndef _EVENTS_H_
#define _EVENTS_H_

#include "server.h"
#include "channel.h"
#include "user.h"


class IRCEvents
{
public:
	IRCEvents();

	virtual void onConnect(Server *server)											= 0;
	virtual void onDisconnect(Server *server)										= 0;
	virtual void onJoin(Server *server, Channel *channel)								= 0;
	virtual void onJoin(Server *server, Channel *channel, User *user)					= 0;
	virtual void onPart(Server *server, Channel *channel, User *user)					= 0;
	virtual void onNick(Server *server, User *user, std::string nick)					= 0;
	virtual void onNotice(Server *server, std::string notice)							= 0;
	virtual void onMessage(Server *server, User *user, std::vector<std::string> params)				= 0;
	virtual void onMessage(Server *server, Channel *channel, User *user, std::vector<std::string> params)	= 0;
};

#endif